<%@ page import="day04.Student" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.ArrayList" %><%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2022/1/10
  Time: 18:58
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@include file="second.jsp"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%--1).java代码块
    格式:<%代码%>
--%>
    <%out.print("<h1>千千阙歌</h1>");%>
<%--向请求域中存储数据--%>
    <%session.setAttribute("name","春娇");%>
    <%Object name = session.getAttribute("name");%>
    <%out.print(name);%><br/>
<%--2).jsp表达式
    格式:<%=表达式%>
--%>
    <%request.setAttribute("na","上上树超人");%>
    <%Object na = request.getAttribute("na");%>
    <%=na%>

<%--3).jsp声明变量,方法
    格式:<%!空格 声明的内容%>
--%>
    <%! String str="100分";%><%--成员变量--%>
    <%String strs="移速700多";%><%--局部变量--%>
    <%out.print(strs);%>
    <%! public void show(){
        System.out.println("方法");
    }%>
    <%show();%>

<%--jsp三大指令
    1).page指令:
    2).include指令
    3).taglib指令
--%>
    <%=i%>
    <%out.print(i);%>
<%--jsp九大隐式对象
    1).request      2).response     3).out
    4).session      5).application  6).config
    7).pageContext  8).page         9).Exception
--%>
<%--servlet中四大域对象
    1).页面域PageContext
    2).请求域ServletRequset
    3).应用域ServletContext
    4).会话域httpServlet
--%>



<%--el表发式
    格式:${表发式内容}
      基本数据类型
      自定义对象
      数组
      list集合
      map集合
--%>
    <%pageContext.setAttribute("tom","淦");%>
    <%--从域对象中获取数据--%>
    <%Object tom = pageContext.getAttribute("tom");%>
    ${tom}
    <%application.setAttribute("jjb",new Student("爆爆1",88));%>
    <%Object jjb = application.getAttribute("jjb");%>
    ${jjb.age}
    <%--获取数组中的数据--%>
    <%String[] str={"12","22","33"};%>
    <%request.setAttribute("str",str);%>
    ${str[0]}
    ${str[1]}
    ${str[2]}
    <br/>
    <%--获取map集合数据--%>
    <%HashMap<String, Integer> map = new HashMap<>();
        map.put("鱼小c",30);
        map.put("战神",30);
        map.put("赌狗",38);
    %>
    <%session.setAttribute("map",map);%>
    ${map.战神}
<%--el表达式中没有空指针异常,数组索引越界,没有字符串拼接--%>
    <%String s="";%>
    <%application.setAttribute("s",s);%>
    <%String ss=null;%>
    <%application.setAttribute("ss",ss);%>
    <%String[] sss={};%>
    <%application.setAttribute("sss",sss);%>
    <%--el表发式判断string是否为空--%>
    ${empty s}
    ${empty ss}
    ${empty sss}



<%--JSTL常用标签
    <c:if>用于判断
    <c:choose><c:when><c:other>多条件判断
    <c:foreache> 循环遍历

--%>

    <br/>
    <%pageContext.setAttribute("score","B");%>
    <%--单条件判断    test属性:判定条件--%>
    <c:if test="${pageScope.score eq 'A'}">
        优秀
    </c:if>
    <c:if test="${pageScope.score eq 'B'}">
        及格
    </c:if>
    <%--多条件判断--%>
    <c:choose>
        <c:when test="${pageScope.score eq 'A'}">111</c:when>
        <c:when test="${pageScope.score eq 'B'}">222</c:when>
        <c:otherwise>其他</c:otherwise>
    </c:choose>
    <br/>
<%--<c:forEach> 遍历集合
  属性:
      items:要遍历的集合 使用el表达式取出来
      var:把当前遍历进来的元素取出来,存储到page域中
      begin:开始遍历的索引
      end:结束遍历的索引
      step:步长  相当于for中的i++
      varStatus:计数器对象,里面两个属性: 一个用来记录索引从0开始,一个用来计数从1开始
--%>
    <%ArrayList<String> list = new ArrayList<>();
        list.add("AAA");
        list.add("BBB");
        list.add("CCC");
    %>
    <%session.setAttribute("lists",list);%>
    <c:forEach items="${lists}" var="yy">
        ${yy}
    </c:forEach>








</body>
</html>
